1. Technical Field
This disclosure concerns systems and methods for building graphical user interface application (GAP) based integrated systems. In particular, this disclosure relates to an efficient and non-invasive approach to creating integrated systems from GAPs and web services.
2. Background Information
There is a strong demand for modern systems to integrate (e.g., exchange information) with other systems. However, modern systems often incorporate Graphical User Interface (GUI) Applications (GAPs) implemented in a closed and monolithic manner. System integrators find retrofitting existing GAPs to interoperate a particularly difficult technical challenge, especially for closed and monolithic GAPs. Thus, a fundamental technical problem of interoperability for system integrators is how to compose integrated systems with existing GAPs that do not already interoperate with each other and web services, efficiently and non-invasively.
System Integrators and organizations purchasing system integration services recognize the difficulty and enormous expense of building integrated applications. Beyond developing integrated applications components, system integrators and applications programmers must define protocols and implement functionality required to enable information exchanges between the integrated applications' components, which may include GAPs and web services. Organizations tend to use legacy GAPs as long as possible in business operations, primarily to realize the return on investment for the legacy GAPs. However, system integrators find enabling GAPs to interoperate difficult, because system integrators consider the vast majority of GAPs encountered as closed and monolithic. In other words, most GAPs do not expose programming interfaces or data in known formats. Thus, while system integrators find the use of GAPs as components in integrated applications desirable, often the original implementation of a GAP makes enabling interoperability impossible.
In contrast to GAPs, developers design web services as software components that flexibly exchange information over networks, including the Internet. Consequently, business industry demand for applications that easily and inexpensively exchange information has partly caused widespread acceptance of web services. Employing web services, unlike GAPs, enables organizations to quickly build integrated systems by composing (i.e., configuring) the web services for information exchange. Organizations have invested heavily in legacy GAPs, but GAPs are not easily added to an existing framework of web services. System integrators find it difficult to modify source code of GAPs to enable interoperability, because of brittle legacy architectures, poor documentation, significant programming effort, and subsequently, the large cost of such projects. Organizations often do not have access to the source code necessary to modify third-party GAPs. Given the complexity of GAPs and the cost to make GAPs interoperable, a fundamental problem exists of how to enable GAPs to exchange information with each other and web services, and build integrated systems using the GAPs and web services, efficiently and non-invasively.
Organizations consider e-procurement systems (EPS) critical, because EPS influence all areas of the organization performance. Businesses employ elaborate EPS that often include different GAPs that support different steps of a purchasing process. In EPS, the rule of separation of duty requires operations separated into subparts and performed by independent persons (i.e., agents) to maintain integrity. The separation of duty rule prevents a person from causing a problem that will go unnoticed, because a person who creates or certifies a transaction may not also execute the transaction. Implementing the separation of duty rule results in agents requiring different GAPs that provide different services for different parts of a purchasing process.
Consider a typical e-procurement scenario, where employees order items using an electronic shopping cart service of a web-based application BuyMoreStuff (BMS). Department managers review selected items in the shopping cart, approve and order the items, and enter the ordered items into Acme Expense GAP (AEG), which is a third-party closed and monolithic Windows GAP that the company uses internally to keep track of purchases. The BMS web service sends a notification to a company accountant, who uses a closed and monolithic GAP named My Invoices and Estimates (MIE) to create invoices for ordered goods. When a receiving agent receives the ordered goods from BMS, a receiving agent compares them with the entries in AEG. The accountant can view the AEG records, but cannot modify the AEG records, and likewise, only the accountant can insert and modify data in MIE. If the received goods match the AEG records, then the receiving agent marks the entries for the received goods in AEG and notifies the accountant. After comparing the invoices in MIE with the marked entries in AEG and determining that they match, the accountant authorizes payments. In this example, each procurement agent uses a different GAP to accomplish different portion of a business process. Conceivably, several GAPs used together accomplish a single business goal, and agents transfer data between GAPs and perform other operations manually. Organizations clearly recognize automation as critical to improving the quality and efficiency of business services.
A need has long existed for a system and method to enable GAPs to interoperate with each other and with web services.